Delayed trim of managed nand flash memory in computing devices

ABSTRACT

A method of managing NAND flash memory in an electronic device whereby system performance of the electronic device is minimally impacted is disclosed. The method comprises collecting files that are marked for deletion or truncation; monitoring an activity level of the electronic device; monitoring a total size of the list of files that are marked for deletion or truncation; determining if the electronic device is idle; and trimming the flash memory of the electronic device if predetermined criteria are met.

CROSS-REFERENCE TO RELATED APPLICATION

The present application claims the benefit of U.S. Patent ApplicationNo. 62/095,470 for Delayed Trim of Managed NAND Flash Memory inComputing Devices filed Dec. 22, 2014. The foregoing patent applicationis hereby incorporated by reference in its entirety.

FIELD OF THE INVENTION

The invention is generally related to flash memory in electronicdevices, and, more specifically, to managing NAND flash memory.

BACKGROUND

In order for managed NAND flash memory to work properly, and to providelongevity in the field, the flash controller must be aware of whichflash cells are ‘in use’. This “in-use” information is used to allow forwear leveling, and other flash maintenance. The traditional methodavailable to keep the controller informed of unused blocks is toimplement a TRIM command on each block, i.e. “trimming” the flashmemory. Typically, a TRIM command permits an operating system to tellthe flash controller which blocks of data are no longer in use, and canbe erased and reused. However, implementing a TRIM command immediatelyupon deletion can have a significant impact on file system performance.Once a file is deleted, most file systems do not provide a low-impactmethod of determining which blocks are free, although they are ablereuse those blocks at a future opportunity due to internal accounting inthe file system. However, since the flash controller is not aware ofthese “unused” blocks, it is unable to use them for flash maintenance.

SUMMARY

In an aspect of the invention, a method of managing NAND flash memory inan electronic device, comprises collecting files that are marked fordeletion or truncation; monitoring an activity level of the electronicdevice; monitoring a total size of the list of files that are marked fordeletion or truncation; determining if the electronic device is idle;and trimming the flash memory of the electronic device if predeterminedcriteria are met; whereby system performance of the electronic device isminimally impacted.

In an embodiment, the method comprises loading a file system filterdriver at boot time of the electronic device.

In another embodiment, the method comprises setting a correct filtermode of the file system driver.

In another embodiment, the method comprises assigning a thread priorityto the file system filter driver

In yet another embodiment, the method comprises creating hooks to a filesystem of the electronic device from the file system device driver.

In another embodiment, the method comprises extending file system I/Ofunctions to the file system device driver.

In another embodiment, the method comprises spawning a process tomonitor idle time of the electronic device.

In an embodiment, the method comprises creating a system folder tocontain files marked for deletion or truncation.

In another embodiment, the method comprises spawning a process tomonitor the system folder.

In yet another embodiment, the method comprises moving files marked fordeletion or truncation to a system folder.

In an embodiment, trimming the flash memory of the electronic deviceoccurs after the system folder exceeds a predetermined size.

In an embodiment, trimming the flash memory of the electronic deviceoccurs at the next reboot of the electronic device.

In an embodiment, trimming the flash memory of the electronic deviceoccurs when the electronic device is determined to be idle.

In another aspect of the invention, a method of managing NAND flashmemory in an electronic device comprises providing an electronic devicehaving a NAND flash memory with a file system, and an operating systemhaving file system I/O functions; providing a file system filter driveron the electronic device, the file system filter driver operative to:execute file system I/O functions of the operating system, monitor anactivity level of the electronic device, create a system folder tocontain files that are marked for deletion or truncation, move filesthat are marked for deletion or truncation to the system folder,determine if the electronic device is idle, monitor the size of thesystem folder, and trim the flash memory of the electronic device if apredetermined criteria are met; whereby system performance of theelectronic device is minimally impacted by TRIM operations of the flashmemory.

In an embodiment, the method comprises configuring the electronic deviceto load the file system filter driver at boot time of the electronicdevice.

In an embodiment, the file system filter driver is operative to spawn aprocess to monitor idle time of the electronic device.

In another embodiment, the file system filter driver is operative tospawn a process to monitor the system folder.

In yet another embodiment, the file system filter driver is operative totrim the flash memory of the electronic device after the system folderexceeds a predetermined size.

In another embodiment, the file system filter driver is operative totrim the flash memory of the electronic device at the next reboot of theelectronic device.

In yet another embodiment, the file system filter driver is operative totrim the flash memory of the electronic device when the electronicdevice is determined to be idle.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention will now be described by way of example, with reference tothe accompanying Figures, of which:

FIG. 1 is a block diagram of an electronic device with softwareoperative for managing NAND flash memory;

FIG. 2 is a flowchart of a method of managing NAND flash memory on anelectronic device; and

FIG. 3 is a flowchart of a method of installing and setting up softwareon an electronic device that is operative for managing NAND flashmemory.

DETAILED DESCRIPTION

Generally, a method of managing NAND flash memory in an electronicdevice minimizes the system performance impact of TRIM operations of theflash memory. As described in further detail below, the method includesproviding an electronic device having NAND flash memory with a filesystem, an operating system having file system I/O functions andproviding a file system filter driver on the electronic device. The filesystem filter driver is operative to execute file system I/O functionsof the operating system; monitor an activity level of the electronicdevice; create a system folder to contain files that are marked fordeletion or truncation; move the files that are marked for deletion ortruncation to the system folder; determine if the electronic device isidle; and trim the flash memory of the electronic device during anoptimal period, such as idle time, a reboot or if the system folder hasexceeded a predetermined size.

Referring to FIG. 1, an exemplary electronic device 100 includes aprocessor 102, a flash memory controller 104, NAND flash memory 106, andat least one host file system 107. System folders 108, as describedfurther below, are operative for temporarily accumulating files markedfor deletion or truncation. The file system 107 is stored within theflash memory 106. The system folders 108 are in turn stored in the filesystem 107. The electronic device 100 further includes memory 110. Theelectronic device 100 includes an operating system 112 and file systemfilter driver 114, for managing deletions from the file system 107. Thefile system filter driver 114 includes an IdleThread thread 116 and aTrimThread thread 118, which will be described in greater detail below,which monitor the activity of the electronic device 100 and size of thesystem folders 108, respectively.

Referring to FIG. 2, the file system filter driver 114 is implemented tokeep track of which files have been marked for deletion or truncation at200. The file system filter driver 114 collects these marked files. Thefile system filter driver 114 further monitors the activity level of thedevice 204 and the total size of the files marked for deletion ortruncation 206. The file system filter driver 114 further determineswhen the electronic device 100 is idle 208 and “trims” the flash memoryat an optimal time 210. By keeping these files set aside, a TRIM commandmay be executed at a later time to delete and/or truncate the files. Inaccordance with the disclosure, instead of immediately deleting thefiles (and removing knowledge as to blocks that belong to this file) atthe time the user requests the delete, the file is renamed or movedinstead. This allows the record of now unused blocks to be maintainedand protected. Then, the marked files may be deleted with the TRIMcommand at an appropriate time. That appropriate time may be at the nextreboot, after a certain amount of ‘files-to-trim’ exist, or when thesystem is known to be less busy, so the performance impact will not benoticed by the user.

Referring to FIG. 3, the method of setting up the electronic device toimplement the method of managing NAND flash memory is shown generally at300. The file system filter driver 114 is loaded at boot time 302. Uponboot, the file system filter drive 114 reads the registry for thecorrect “FilterMode” desired to be set 304. The registry (in Windowssystems) is also read for the correct thread priority desired to beassign the file system filter driver thread (i.e. process) 306. The filesystem filter driver 114 will also setup hooks to certain volumes on thefile system 308. This allows the File System Manager to know when tocall into the file system filter driver 114. The File System I/Ofunctions such as DeleteFile, CreateFolder, RemoveFolder, etc., are alsoextended to the file system filter driver 114 to enable these functionsto be called directly 310. The functions to be exported can be found inthe .def file of the file system driver filter 114 in Windows systems.

Once this setup is completed, the file system driver filter 114 createsone or more system folders where files can be moved to for latertrimming 312. The title of these system folders may be “$Trim.bin” orother suitable filename. The location may be at the root of the filesystem or other suitable location. This folder is also designated as asystem folder and hidden to prevent inadvertent tampering of thecontents. The file system driver filter 114 spawns two threads 314, 316.Specifically, the IdleThread and the TrimThread. The purpose of theIdleThread is to measure the systems idle time. The purpose of theTrimThread is to constantly monitor the $Trim.bin folders for any filesto be trimmed. Once found, and the correct system conditions aredetected, the file system filter driver 114 can now execute a TRIMcommand to trim the files based on the previously set Filter Mode.

The TrimThread thread constantly monitors conditions in the system. Asmentioned earlier, certain conditions can allow the TrimThread not totrim files. These conditions may be: the system being in a busy stateand being suspended. The TrimThread can also adjust itself to certainsystem conditions where files are trimmed more aggressively. Theseconditions may include being in “flush” mode and being close to reachingthe maximum size of the trim folder.

Files are only moved to the $Trim.bin folder when a user calls thecustomer facing DeleteFile API on the volume into which the file systemfilter driver 114 has created a hook. Most of the other functions thathave been exported simply relay the user's commands down to the otherFilters that may or may not be set up on the electronic device.

In summary, those of ordinary skill in the art would appreciate from theforegoing description and illustrations that the disclosed method ofmanaging NAND flash memory enhances the overall performance of theelectronic device. By saving the deletion and truncation of files for atime when the electronic device is idle, the impact of TRIM commands onthe system performance of the electronic device is minimized to theuser, thus enhancing the user's productivity.

While there is shown and described herein certain specific structureembodying the disclosure, it will be manifest to those skilled in theart that various modifications and rearrangements of the parts may bemade without departing from the spirit and scope of the underlyingconcept and that the same is not limited to the particular forms hereinshown and described except insofar as indicated by the scope of theappended claim.

To supplement the present disclosure, this application incorporatesentirely by reference the following patents, patent applicationpublications, and patent applications:

-   U.S. Pat. No. 6,832,725; U.S. Pat. No. 7,128,266;-   U.S. Pat. No. 7,159,783; U.S. Pat. No. 7,413,127;-   U.S. Pat. No. 7,726,575; U.S. Pat. No. 8,294,969;-   U.S. Pat. No. 8,317,105; U.S. Pat. No. 8,322,622;-   U.S. Pat. No. 8,366,005; U.S. Pat. No. 8,371,507;-   U.S. Pat. No. 8,376,233; U.S. Pat. No. 8,381,979;-   U.S. Pat. No. 8,390,909; U.S. Pat. No. 8,408,464;-   U.S. Pat. No. 8,408,468; U.S. Pat. No. 8,408,469;-   U.S. Pat. No. 8,424,768; U.S. Pat. No. 8,448,863;-   U.S. Pat. No. 8,457,013; U.S. Pat. No. 8,459,557;-   U.S. Pat. No. 8,469,272; U.S. Pat. No. 8,474,712;-   U.S. Pat. No. 8,479,992; U.S. Pat. No. 8,490,877;-   U.S. Pat. No. 8,517,271; U.S. Pat. No. 8,523,076;-   U.S. Pat. No. 8,528,818; U.S. Pat. No. 8,544,737;-   U.S. Pat. No. 8,548,242; U.S. Pat. No. 8,548,420;-   U.S. Pat. No. 8,550,335; U.S. Pat. No. 8,550,354;-   U.S. Pat. No. 8,550,357; U.S. Pat. No. 8,556,174;-   U.S. Pat. No. 8,556,176; U.S. Pat. No. 8,556,177;-   U.S. Pat. No. 8,559,767; U.S. Pat. No. 8,599,957;-   U.S. Pat. No. 8,561,895; U.S. Pat. No. 8,561,903;-   U.S. Pat. No. 8,561,905; U.S. Pat. No. 8,565,107;-   U.S. Pat. No. 8,571,307; U.S. Pat. No. 8,579,200;-   U.S. Pat. No. 8,583,924; U.S. Pat. No. 8,584,945;-   U.S. Pat. No. 8,587,595; U.S. Pat. No. 8,587,697;-   U.S. Pat. No. 8,588,869; U.S. Pat. No. 8,590,789;-   U.S. Pat. No. 8,596,539; U.S. Pat. No. 8,596,542;-   U.S. Pat. No. 8,596,543; U.S. Pat. No. 8,599,271;-   U.S. Pat. No. 8,599,957; U.S. Pat. No. 8,600,158;-   U.S. Pat. No. 8,600,167; U.S. Pat. No. 8,602,309;-   U.S. Pat. No. 8,608,053; U.S. Pat. No. 8,608,071;-   U.S. Pat. No. 8,611,309; U.S. Pat. No. 8,615,487;-   U.S. Pat. No. 8,616,454; U.S. Pat. No. 8,621,123;-   U.S. Pat. No. 8,622,303; U.S. Pat. No. 8,628,013;-   U.S. Pat. No. 8,628,015; U.S. Pat. No. 8,628,016;-   U.S. Pat. No. 8,629,926; U.S. Pat. No. 8,630,491;-   U.S. Pat. No. 8,635,309; U.S. Pat. No. 8,636,200;-   U.S. Pat. No. 8,636,212; U.S. Pat. No. 8,636,215;-   U.S. Pat. No. 8,636,224; U.S. Pat. No. 8,638,806;-   U.S. Pat. No. 8,640,958; U.S. Pat. No. 8,640,960;-   U.S. Pat. No. 8,643,717; U.S. Pat. No. 8,646,692;-   U.S. Pat. No. 8,646,694; U.S. Pat. No. 8,657,200;-   U.S. Pat. No. 8,659,397; U.S. Pat. No. 8,668,149;-   U.S. Pat. No. 8,678,285; U.S. Pat. No. 8,678,286;-   U.S. Pat. No. 8,682,077; U.S. Pat. No. 8,687,282;-   U.S. Pat. No. 8,692,927; U.S. Pat. No. 8,695,880;-   U.S. Pat. No. 8,698,949; U.S. Pat. No. 8,717,494;-   U.S. Pat. No. 8,717,494; U.S. Pat. No. 8,720,783;-   U.S. Pat. No. 8,723,804; U.S. Pat. No. 8,723,904;-   U.S. Pat. No. 8,727,223; U.S. Pat. No. D702,237;-   U.S. Pat. No. 8,740,082; U.S. Pat. No. 8,740,085;-   U.S. Pat. No. 8,746,563; U.S. Pat. No. 8,750,445;-   U.S. Pat. No. 8,752,766; U.S. Pat. No. 8,756,059;-   U.S. Pat. No. 8,757,495; U.S. Pat. No. 8,760,563;-   U.S. Pat. No. 8,763,909; U.S. Pat. No. 8,777,108;-   U.S. Pat. No. 8,777,109; U.S. Pat. No. 8,779,898;-   U.S. Pat. No. 8,781,520; U.S. Pat. No. 8,783,573;-   U.S. Pat. No. 8,789,757; U.S. Pat. No. 8,789,758;-   U.S. Pat. No. 8,789,759; U.S. Pat. No. 8,794,520;-   U.S. Pat. No. 8,794,522; U.S. Pat. No. 8,794,525;-   U.S. Pat. No. 8,794,526; U.S. Pat. No. 8,798,367;-   U.S. Pat. No. 8,807,431; U.S. Pat. No. 8,807,432;-   U.S. Pat. No. 8,820,630; U.S. Pat. No. 8,822,848;-   U.S. Pat. No. 8,824,692; U.S. Pat. No. 8,824,696;-   U.S. Pat. No. 8,842,849; U.S. Pat. No. 8,844,822;-   U.S. Pat. No. 8,844,823; U.S. Pat. No. 8,849,019;-   U.S. Pat. No. 8,851,383; U.S. Pat. No. 8,854,633;-   U.S. Pat. No. 8,866,963; U.S. Pat. No. 8,868,421;-   U.S. Pat. No. 8,868,519; U.S. Pat. No. 8,868,802;-   U.S. Pat. No. 8,868,803; U.S. Pat. No. 8,870,074;-   U.S. Pat. No. 8,879,639; U.S. Pat. No. 8,880,426;-   U.S. Pat. No. 8,881,983; U.S. Pat. No. 8,881,987;-   U.S. Pat. No. 8,903,172; U.S. Pat. No. 8,908,995;-   U.S. Pat. No. 8,910,870; U.S. Pat. No. 8,910,875;-   U.S. Pat. No. 8,914,290; U.S. Pat. No. 8,914,788;-   U.S. Pat. No. 8,915,439; U.S. Pat. No. 8,915,444;-   U.S. Pat. No. 8,916,789; U.S. Pat. No. 8,918,250;-   U.S. Pat. No. 8,918,564; U.S. Pat. No. 8,925,818;-   U.S. Pat. No. 8,939,374; U.S. Pat. No. 8,942,480;-   U.S. Pat. No. 8,944,313; U.S. Pat. No. 8,944,327;-   U.S. Pat. No. 8,944,332; U.S. Pat. No. 8,950,678;-   U.S. Pat. No. 8,967,468; U.S. Pat. No. 8,971,346;-   U.S. Pat. No. 8,976,030; U.S. Pat. No. 8,976,368;-   U.S. Pat. No. 8,978,981; U.S. Pat. No. 8,978,983;-   U.S. Pat. No. 8,978,984; U.S. Pat. No. 8,985,456;-   U.S. Pat. No. 8,985,457; U.S. Pat. No. 8,985,459;-   U.S. Pat. No. 8,985,461; U.S. Pat. No. 8,988,578;-   U.S. Pat. No. 8,988,590; U.S. Pat. No. 8,991,704;-   U.S. Pat. No. 8,996,194; U.S. Pat. No. 8,996,384;-   U.S. Pat. No. 9,002,641; U.S. Pat. No. 9,007,368;-   U.S. Pat. No. 9,010,641; U.S. Pat. No. 9,015,513;-   U.S. Pat. No. 9,016,576; U.S. Pat. No. 9,022,288;-   U.S. Pat. No. 9,030,964; U.S. Pat. No. 9,033,240;-   U.S. Pat. No. 9,033,242; U.S. Pat. No. 9,036,054;-   U.S. Pat. No. 9,037,344; U.S. Pat. No. 9,038,911;-   U.S. Pat. No. 9,038,915; U.S. Pat. No. 9,047,098;-   U.S. Pat. No. 9,047,359; U.S. Pat. No. 9,047,420;-   U.S. Pat. No. 9,047,525; U.S. Pat. No. 9,047,531;-   U.S. Pat. No. 9,053,055; U.S. Pat. No. 9,053,378;-   U.S. Pat. No. 9,053,380; U.S. Pat. No. 9,058,526;-   U.S. Pat. No. 9,064,165; U.S. Pat. No. 9,064,167;-   U.S. Pat. No. 9,064,168; U.S. Pat. No. 9,064,254;-   U.S. Pat. No. 9,066,032; U.S. Pat. No. 9,070,032;-   U.S. Design Pat. No. D716,285;-   U.S. Design Pat. No. D723,560;-   U.S. Design Pat. No. D730,357;-   U.S. Design Pat. No. D730,901;-   U.S. Design Pat. No. D730,902;-   U.S. Design Pat. No. D733,112;-   U.S. Design Pat. No. D734,339;-   International Publication No. 2013/163789;-   International Publication No. 2013/173985;-   International Publication No. 2014/019130;-   International Publication No. 2014/110495;-   U.S. Patent Application Publication No. 2008/0185432;-   U.S. Patent Application Publication No. 2009/0134221;-   U.S. Patent Application Publication No. 2010/0177080;-   U.S. Patent Application Publication No. 2010/0177076;-   U.S. Patent Application Publication No. 2010/0177707;-   U.S. Patent Application Publication No. 2010/0177749;-   U.S. Patent Application Publication No. 2010/0265880;-   U.S. Patent Application Publication No. 2011/0202554;-   U.S. Patent Application Publication No. 2012/0111946;-   U.S. Patent Application Publication No. 2012/0168511;-   U.S. Patent Application Publication No. 2012/0168512;-   U.S. Patent Application Publication No. 2012/0193423;-   U.S. Patent Application Publication No. 2012/0203647;-   U.S. Patent Application Publication No. 2012/0223141;-   U.S. Patent Application Publication No. 2012/0228382;-   U.S. Patent Application Publication No. 2012/0248188;-   U.S. Patent Application Publication No. 2013/0043312;-   U.S. Patent Application Publication No. 2013/0082104;-   U.S. Patent Application Publication No. 2013/0175341;-   U.S. Patent Application Publication No. 2013/0175343;-   U.S. Patent Application Publication No. 2013/0257744;-   U.S. Patent Application Publication No. 2013/0257759;-   U.S. Patent Application Publication No. 2013/0270346;-   U.S. Patent Application Publication No. 2013/0287258;-   U.S. Patent Application Publication No. 2013/0292475;-   U.S. Patent Application Publication No. 2013/0292477;-   U.S. Patent Application Publication No. 2013/0293539;-   U.S. Patent Application Publication No. 2013/0293540;-   U.S. Patent Application Publication No. 2013/0306728;-   U.S. Patent Application Publication No. 2013/0306731;-   U.S. Patent Application Publication No. 2013/0307964;-   U.S. Patent Application Publication No. 2013/0308625;-   U.S. Patent Application Publication No. 2013/0313324;-   U.S. Patent Application Publication No. 2013/0313325;-   U.S. Patent Application Publication No. 2013/0342717;-   U.S. Patent Application Publication No. 2014/0001267;-   U.S. Patent Application Publication No. 2014/0008439;-   U.S. Patent Application Publication No. 2014/0025584;-   U.S. Patent Application Publication No. 2014/0034734;-   U.S. Patent Application Publication No. 2014/0036848;-   U.S. Patent Application Publication No. 2014/0039693;-   U.S. Patent Application Publication No. 2014/0042814;-   U.S. Patent Application Publication No. 2014/0049120;-   U.S. Patent Application Publication No. 2014/0049635;-   U.S. Patent Application Publication No. 2014/0061306;-   U.S. Patent Application Publication No. 2014/0063289;-   U.S. Patent Application Publication No. 2014/0066136;-   U.S. Patent Application Publication No. 2014/0067692;-   U.S. Patent Application Publication No. 2014/0070005;-   U.S. Patent Application Publication No. 2014/0071840;-   U.S. Patent Application Publication No. 2014/0074746;-   U.S. Patent Application Publication No. 2014/0076974;-   U.S. Patent Application Publication No. 2014/0078341;-   U.S. Patent Application Publication No. 2014/0078345;-   U.S. Patent Application Publication No. 2014/0097249;-   U.S. Patent Application Publication No. 2014/0098792;-   U.S. Patent Application Publication No. 2014/0100813;-   U.S. Patent Application Publication No. 2014/0103115;-   U.S. Patent Application Publication No. 2014/0104413;-   U.S. Patent Application Publication No. 2014/0104414;-   U.S. Patent Application Publication No. 2014/0104416;-   U.S. Patent Application Publication No. 2014/0104451;-   U.S. Patent Application Publication No. 2014/0106594;-   U.S. Patent Application Publication No. 2014/0106725;-   U.S. Patent Application Publication No. 2014/0108010;-   U.S. Patent Application Publication No. 2014/0108402;-   U.S. Patent Application Publication No. 2014/0110485;-   U.S. Patent Application Publication No. 2014/0114530;-   U.S. Patent Application Publication No. 2014/0124577;-   U.S. Patent Application Publication No. 2014/0124579;-   U.S. Patent Application Publication No. 2014/0125842;-   U.S. Patent Application Publication No. 2014/0125853;-   U.S. Patent Application Publication No. 2014/0125999;-   U.S. Patent Application Publication No. 2014/0129378;-   U.S. Patent Application Publication No. 2014/0131438;-   U.S. Patent Application Publication No. 2014/0131441;-   U.S. Patent Application Publication No. 2014/0131443;-   U.S. Patent Application Publication No. 2014/0131444;-   U.S. Patent Application Publication No. 2014/0131445;-   U.S. Patent Application Publication No. 2014/0131448;-   U.S. Patent Application Publication No. 2014/0133379;-   U.S. Patent Application Publication No. 2014/0136208;-   U.S. Patent Application Publication No. 2014/0140585;-   U.S. Patent Application Publication No. 2014/0151453;-   U.S. Patent Application Publication No. 2014/0152882;-   U.S. Patent Application Publication No. 2014/0158770;-   U.S. Patent Application Publication No. 2014/0159869;-   U.S. Patent Application Publication No. 2014/0166755;-   U.S. Patent Application Publication No. 2014/0166759;-   U.S. Patent Application Publication No. 2014/0168787;-   U.S. Patent Application Publication No. 2014/0175165;-   U.S. Patent Application Publication No. 2014/0175172;-   U.S. Patent Application Publication No. 2014/0191644;-   U.S. Patent Application Publication No. 2014/0191913;-   U.S. Patent Application Publication No. 2014/0197238;-   U.S. Patent Application Publication No. 2014/0197239;-   U.S. Patent Application Publication No. 2014/0197304;-   U.S. Patent Application Publication No. 2014/0214631;-   U.S. Patent Application Publication No. 2014/0217166;-   U.S. Patent Application Publication No. 2014/0217180;-   U.S. Patent Application Publication No. 2014/0231500;-   U.S. Patent Application Publication No. 2014/0232930;-   U.S. Patent Application Publication No. 2014/0247315;-   U.S. Patent Application Publication No. 2014/0263493;-   U.S. Patent Application Publication No. 2014/0263645;-   U.S. Patent Application Publication No. 2014/0267609;-   U.S. Patent Application Publication No. 2014/0270196;-   U.S. Patent Application Publication No. 2014/0270229;-   U.S. Patent Application Publication No. 2014/0278387;-   U.S. Patent Application Publication No. 2014/0278391;-   U.S. Patent Application Publication No. 2014/0282210;-   U.S. Patent Application Publication No. 2014/0284384;-   U.S. Patent Application Publication No. 2014/0288933;-   U.S. Patent Application Publication No. 2014/0297058;-   U.S. Patent Application Publication No. 2014/0299665;-   U.S. Patent Application Publication No. 2014/0312121;-   U.S. Patent Application Publication No. 2014/0319220;-   U.S. Patent Application Publication No. 2014/0319221;-   U.S. Patent Application Publication No. 2014/0326787;-   U.S. Patent Application Publication No. 2014/0332590;-   U.S. Patent Application Publication No. 2014/0344943;-   U.S. Patent Application Publication No. 2014/0346233;-   U.S. Patent Application Publication No. 2014/0351317;-   U.S. Patent Application Publication No. 2014/0353373;-   U.S. Patent Application Publication No. 2014/0361073;-   U.S. Patent Application Publication No. 2014/0361082;-   U.S. Patent Application Publication No. 2014/0362184;-   U.S. Patent Application Publication No. 2014/0363015;-   U.S. Patent Application Publication No. 2014/0369511;-   U.S. Patent Application Publication No. 2014/0374483;-   U.S. Patent Application Publication No. 2014/0374485;-   U.S. Patent Application Publication No. 2015/0001301;-   U.S. Patent Application Publication No. 2015/0001304;-   U.S. Patent Application Publication No. 2015/0003673;-   U.S. Patent Application Publication No. 2015/0009338;-   U.S. Patent Application Publication No. 2015/0009610;-   U.S. Patent Application Publication No. 2015/0014416;-   U.S. Patent Application Publication No. 2015/0021397;-   U.S. Patent Application Publication No. 2015/0028102;-   U.S. Patent Application Publication No. 2015/0028103;-   U.S. Patent Application Publication No. 2015/0028104;-   U.S. Patent Application Publication No. 2015/0029002;-   U.S. Patent Application Publication No. 2015/0032709;-   U.S. Patent Application Publication No. 2015/0039309;-   U.S. Patent Application Publication No. 2015/0039878;-   U.S. Patent Application Publication No. 2015/0040378;-   U.S. Patent Application Publication No. 2015/0048168;-   U.S. Patent Application Publication No. 2015/0049347;-   U.S. Patent Application Publication No. 2015/0051992;-   U.S. Patent Application Publication No. 2015/0053766;-   U.S. Patent Application Publication No. 2015/0053768;-   U.S. Patent Application Publication No. 2015/0053769;-   U.S. Patent Application Publication No. 2015/0060544;-   U.S. Patent Application Publication No. 2015/0062366;-   U.S. Patent Application Publication No. 2015/0063215;-   U.S. Patent Application Publication No. 2015/0063676;-   U.S. Patent Application Publication No. 2015/0069130;-   U.S. Patent Application Publication No. 2015/0071819;-   U.S. Patent Application Publication No. 2015/0083800;-   U.S. Patent Application Publication No. 2015/0086114;-   U.S. Patent Application Publication No. 2015/0088522;-   U.S. Patent Application Publication No. 2015/0096872;-   U.S. Patent Application Publication No. 2015/0099557;-   U.S. Patent Application Publication No. 2015/0100196;-   U.S. Patent Application Publication No. 2015/0102109;-   U.S. Patent Application Publication No. 2015/0115035;-   U.S. Patent Application Publication No. 2015/0127791;-   U.S. Patent Application Publication No. 2015/0128116;-   U.S. Patent Application Publication No. 2015/0129659;-   U.S. Patent Application Publication No. 2015/0133047;-   U.S. Patent Application Publication No. 2015/0134470;-   U.S. Patent Application Publication No. 2015/0136851;-   U.S. Patent Application Publication No. 2015/0136854;-   U.S. Patent Application Publication No. 2015/0142492;-   U.S. Patent Application Publication No. 2015/0144692;-   U.S. Patent Application Publication No. 2015/0144698;-   U.S. Patent Application Publication No. 2015/0144701;-   U.S. Patent Application Publication No. 2015/0149946;-   U.S. Patent Application Publication No. 2015/0161429;-   U.S. Patent Application Publication No. 2015/0169925;-   U.S. Patent Application Publication No. 2015/0169929;-   U.S. Patent Application Publication No. 2015/0178523;-   U.S. Patent Application Publication No. 2015/0178534;-   U.S. Patent Application Publication No. 2015/0178535;-   U.S. Patent Application Publication No. 2015/0178536;-   U.S. Patent Application Publication No. 2015/0178537;-   U.S. Patent Application Publication No. 2015/0181093;-   U.S. Patent Application Publication No. 2015/0181109;-   U.S. patent application Ser. No. 13/367,978 for a Laser Scanning    Module Employing an Elastomeric U-Hinge Based Laser Scanning    Assembly, filed Feb. 7, 2012 (Feng et al.);-   U.S. patent application Ser. No. 29/458,405 for an Electronic    Device, filed Jun. 19, 2013 (Fitch et al.);-   U.S. patent application Ser. No. 29/459,620 for an Electronic Device    Enclosure, filed Jul. 2, 2013 (London et al.);-   U.S. patent application Ser. No. 29/468,118 for an Electronic Device    Case, filed Sep. 26, 2013 (Oberpriller et al.);-   U.S. patent application Ser. No. 14/150,393 for Indicia-reader    Having Unitary Construction Scanner, filed Jan. 8, 2014 (Colavito et    al.);-   U.S. patent application Ser. No. 14/200,405 for Indicia Reader for    Size-Limited Applications filed Mar. 7, 2014 (Feng et al.);-   U.S. patent application Ser. No. 14/231,898 for Hand-Mounted    Indicia-Reading Device with Finger Motion Triggering filed Apr. 1,    2014 (Van Horn et al.);-   U.S. patent application Ser. No. 29/486,759 for an Imaging Terminal,    filed Apr. 2, 2014 (Oberpriller et al.);-   U.S. patent application Ser. No. 14/257,364 for Docking System and    Method Using Near Field Communication filed Apr. 21, 2014    (Showering);-   U.S. patent application Ser. No. 14/264,173 for Autofocus Lens    System for Indicia Readers filed Apr. 29, 2014 (Ackley et al.);-   U.S. patent application Ser. No. 14/277,337 for MULTIPURPOSE OPTICAL    READER, filed May 14, 2014 (Jovanovski et al.);-   U.S. patent application Ser. No. 14/283,282 for TERMINAL HAVING    ILLUMINATION AND FOCUS CONTROL filed May 21, 2014 (Liu et al.);-   U.S. patent application Ser. No. 14/327,827 for a MOBILE-PHONE    ADAPTER FOR ELECTRONIC TRANSACTIONS, filed Jul. 10, 2014 (Hejl);-   U.S. patent application Ser. No. 14/334,934 for a SYSTEM AND METHOD    FOR INDICIA VERIFICATION, filed Jul. 18, 2014 (Hejl);-   U.S. patent application Ser. No. 14/339,708 for LASER SCANNING CODE    SYMBOL READING SYSTEM, filed Jul. 24, 2014 (Xian et al.);-   U.S. patent application Ser. No. 14/340,627 for an AXIALLY    REINFORCED FLEXIBLE SCAN ELEMENT, filed Jul. 25, 2014 (Rueblinger et    al.);-   U.S. patent application Ser. No. 14/446,391 for MULTIFUNCTION POINT    OF SALE APPARATUS WITH OPTICAL SIGNATURE CAPTURE filed Jul. 30, 2014    (Good et al.);-   U.S. patent application Ser. No. 14/452,697 for INTERACTIVE INDICIA    READER, filed Aug. 6, 2014 (Todeschini);-   U.S. patent application Ser. No. 14/453,019 for DIMENSIONING SYSTEM    WITH GUIDED ALIGNMENT, filed Aug. 6, 2014 (Li et al.);-   U.S. patent application Ser. No. 14/462,801 for MOBILE COMPUTING    DEVICE WITH DATA COGNITION SOFTWARE, filed on Aug. 19, 2014    (Todeschini et al.);-   U.S. patent application Ser. No. 14/483,056 for VARIABLE DEPTH OF    FIELD BARCODE SCANNER filed Sep. 10, 2014 (McCloskey et al.);-   U.S. patent application Ser. No. 14/513,808 for IDENTIFYING    INVENTORY ITEMS IN A STORAGE FACILITY filed Oct. 14, 2014 (Singel et    al.);-   U.S. patent application Ser. No. 14/519,195 for HANDHELD    DIMENSIONING SYSTEM WITH FEEDBACK filed Oct. 21, 2014 (Laffargue et    al.);-   U.S. patent application Ser. No. 14/519,179 for DIMENSIONING SYSTEM    WITH MULTIPATH INTERFERENCE MITIGATION filed Oct. 21, 2014 (Thuries    et al.);-   U.S. patent application Ser. No. 14/519,211 for SYSTEM AND METHOD    FOR DIMENSIONING filed Oct. 21, 2014 (Ackley et al.);-   U.S. patent application Ser. No. 14/519,233 for HANDHELD DIMENSIONER    WITH DATA-QUALITY INDICATION filed Oct. 21, 2014 (Laffargue et al.);-   U.S. patent application Ser. No. 14/519,249 for HANDHELD    DIMENSIONING SYSTEM WITH MEASUREMENT-CONFORMANCE FEEDBACK filed Oct.    21, 2014 (Ackley et al.);

U.S. patent application Ser. No. 14/527,191 for METHOD AND SYSTEM FORRECOGNIZING SPEECH USING WILDCARDS IN AN EXPECTED RESPONSE filed Oct.29, 2014 (Braho et al.);

-   U.S. patent application Ser. No. 14/529,563 for ADAPTABLE INTERFACE    FOR A MOBILE COMPUTING DEVICE filed Oct. 31, 2014 (Schoon et al.);-   U.S. patent application Ser. No. 14/529,857 for BARCODE READER WITH    SECURITY FEATURES filed Oct. 31, 2014 (Todeschini et al.);-   U.S. patent application Ser. No. 14/398,542 for PORTABLE ELECTRONIC    DEVICES HAVING A SEPARATE LOCATION TRIGGER UNIT FOR USE IN    CONTROLLING AN APPLICATION UNIT filed Nov. 3, 2014 (Bian et al.);-   U.S. patent application Ser. No. 14/531,154 for DIRECTING AN    INSPECTOR THROUGH AN INSPECTION filed Nov. 3, 2014 (Miller et al.);-   U.S. patent application Ser. No. 14/533,319 for BARCODE SCANNING    SYSTEM USING WEARABLE DEVICE WITH EMBEDDED CAMERA filed Nov. 5, 2014    (Todeschini);-   U.S. patent application Ser. No. 14/535,764 for CONCATENATED    EXPECTED RESPONSES FOR SPEECH RECOGNITION filed Nov. 7, 2014 (Braho    et al.);-   U.S. patent application Ser. No. 14/568,305 for AUTO-CONTRAST    VIEWFINDER FOR AN INDICIA READER filed Dec. 12, 2014 (Todeschini);-   U.S. patent application Ser. No. 14/573,022 for DYNAMIC DIAGNOSTIC    INDICATOR GENERATION filed Dec. 17, 2014 (Goldsmith);-   U.S. patent application Ser. No. 14/578,627 for SAFETY SYSTEM AND    METHOD filed Dec. 22, 2014 (Ackley et al.);-   U.S. patent application Ser. No. 14/580,262 for MEDIA GATE FOR    THERMAL TRANSFER PRINTERS filed Dec. 23, 2014 (Bowles);-   U.S. patent application Ser. No. 14/590,024 for SHELVING AND PACKAGE    LOCATING SYSTEMS FOR DELIVERY VEHICLES filed Jan. 6, 2015 (Payne);-   U.S. patent application Ser. No. 14/596,757 for SYSTEM AND METHOD    FOR DETECTING BARCODE PRINTING ERRORS filed Jan. 14, 2015 (Ackley);-   U.S. patent application Ser. No. 14/416,147 for OPTICAL READING    APPARATUS HAVING VARIABLE SETTINGS filed Jan. 21, 2015 (Chen et    al.);-   U.S. patent application Ser. No. 14/614,706 for DEVICE FOR    SUPPORTING AN ELECTRONIC TOOL ON A USER'S HAND filed Feb. 5, 2015    (Oberpriller et al.);-   U.S. patent application Ser. No. 14/614,796 for CARGO APPORTIONMENT    TECHNIQUES filed Feb. 5, 2015 (Morton et al.);-   U.S. patent application Ser. No. 29/516,892 for TABLE COMPUTER filed    Feb. 6, 2015 (Bidwell et al.);-   U.S. patent application Ser. No. 14/619,093 for METHODS FOR TRAINING    A SPEECH RECOGNITION SYSTEM filed Feb. 11, 2015 (Pecorari);-   U.S. patent application Ser. No. 14/628,708 for DEVICE, SYSTEM, AND    METHOD FOR DETERMINING THE STATUS OF CHECKOUT LANES filed Feb. 23,    2015 (Todeschini);-   U.S. patent application Ser. No. 14/630,841 for TERMINAL INCLUDING    IMAGING ASSEMBLY filed Feb. 25, 2015 (Gomez et al.);-   U.S. patent application Ser. No. 14/635,346 for SYSTEM AND METHOD    FOR RELIABLE STORE-AND-FORWARD DATA HANDLING BY ENCODED INFORMATION    READING TERMINALS filed Mar. 2, 2015 (Sevier);-   U.S. patent application Ser. No. 29/519,017 for SCANNER filed Mar.    2, 2015 (Zhou et al.);-   U.S. patent application Ser. No. 14/405,278 for DESIGN PATTERN FOR    SECURE STORE filed Mar. 9, 2015 (Zhu et al.);-   U.S. patent application Ser. No. 14/660,970 for DECODABLE INDICIA    READING TERMINAL WITH COMBINED ILLUMINATION filed Mar. 18, 2015    (Kearney et al.);-   U.S. patent application Ser. No. 14/661,013 for REPROGRAMMING SYSTEM    AND METHOD FOR DEVICES INCLUDING PROGRAMMING SYMBOL filed Mar. 18,    2015 (Soule et al.);-   U.S. patent application Ser. No. 14/662,922 for MULTIFUNCTION POINT    OF SALE SYSTEM filed Mar. 19, 2015 (Van Horn et al.);-   U.S. patent application Ser. No. 14/663,638 for VEHICLE MOUNT    COMPUTER WITH CONFIGURABLE IGNITION SWITCH BEHAVIOR filed Mar. 20,    2015 (Davis et al.);-   U.S. patent application Ser. No. 14/664,063 for METHOD AND    APPLICATION FOR SCANNING A BARCODE WITH A SMART DEVICE WHILE    CONTINUOUSLY RUNNING AND DISPLAYING AN APPLICATION ON THE SMART    DEVICE DISPLAY filed Mar. 20, 2015 (Todeschini);-   U.S. patent application Ser. No. 14/669,280 for TRANSFORMING    COMPONENTS OF A WEB PAGE TO VOICE PROMPTS filed Mar. 26, 2015    (Funyak et al.);-   U.S. patent application Ser. No. 14/674,329 for AIMER FOR BARCODE    SCANNING filed Mar. 31, 2015 (Bidwell);-   U.S. patent application Ser. No. 14/676,109 for INDICIA READER filed    Apr. 1, 2015 (Huck);-   U.S. patent application Ser. No. 14/676,327 for DEVICE MANAGEMENT    PROXY FOR SECURE DEVICES filed Apr. 1, 2015 (Yeakley et al.);-   U.S. patent application Ser. No. 14/676,898 for NAVIGATION SYSTEM    CONFIGURED TO INTEGRATE MOTION SENSING DEVICE INPUTS filed Apr. 2,    2015 (Showering);-   U.S. patent application Ser. No. 14/679,275 for DIMENSIONING SYSTEM    CALIBRATION SYSTEMS AND METHODS filed Apr. 6, 2015 (Laffargue et    al.);-   U.S. patent application Ser. No. 29/523,098 for HANDLE FOR A TABLET    COMPUTER filed Apr. 7, 2015 (Bidwell et al.);-   U.S. patent application Ser. No. 14/682,615 for SYSTEM AND METHOD    FOR POWER MANAGEMENT OF MOBILE DEVICES filed Apr. 9, 2015 (Murawski    et al.);-   U.S. patent application Ser. No. 14/686,822 for MULTIPLE PLATFORM    SUPPORT SYSTEM AND METHOD filed Apr. 15, 2015 (Qu et al.);-   U.S. patent application Ser. No. 14/687,289 for SYSTEM FOR    COMMUNICATION VIA A PERIPHERAL HUB filed Apr. 15, 2015 (Kohtz et    al.);-   U.S. patent application Ser. No. 29/524,186 for SCANNER filed Apr.    17, 2015 (Zhou et al.);-   U.S. patent application Ser. No. 14/695,364 for MEDICATION    MANAGEMENT SYSTEM filed Apr. 24, 2015 (Sewell et al.);-   U.S. patent application Ser. No. 14/695,923 for SECURE UNATTENDED    NETWORK AUTHENTICATION filed Apr. 24, 2015 (Kubler et al.);-   U.S. patent application Ser. No. 29/525,068 for TABLET COMPUTER WITH    REMOVABLE SCANNING DEVICE filed Apr. 27, 2015 (Schulte et al.);-   U.S. patent application Ser. No. 14/699,436 for SYMBOL READING    SYSTEM HAVING PREDICTIVE DIAGNOSTICS filed Apr. 29, 2015 (Nahill et    al.);-   U.S. patent application Ser. No. 14/702,110 for SYSTEM AND METHOD    FOR REGULATING BARCODE DATA INJECTION INTO A RUNNING APPLICATION ON    A SMART DEVICE filed May 1, 2015 (Todeschini et al.);-   U.S. patent application Ser. No. 14/702,979 for TRACKING BATTERY    CONDITIONS filed May 4, 2015 (Young et al.);-   U.S. patent application Ser. No. 14/704,050 for INTERMEDIATE LINEAR    POSITIONING filed May 5, 2015 (Charpentier et al.);-   U.S. patent application Ser. No. 14/705,012 for HANDS-FREE HUMAN    MACHINE INTERFACE RESPONSIVE TO A DRIVER OF A VEHICLE filed May 6,    2015 (Fitch et al.);-   U.S. patent application Ser. No. 14/705,407 for METHOD AND SYSTEM TO    PROTECT SOFTWARE-BASED NETWORK-CONNECTED DEVICES FROM ADVANCED    PERSISTENT THREAT filed May 6, 2015 (Hussey et al.);-   U.S. patent application Ser. No. 14/707,037 for SYSTEM AND METHOD    FOR DISPLAY OF INFORMATION USING A VEHICLE-MOUNT COMPUTER filed May    8, 2015 (Chamberlin);-   U.S. patent application Ser. No. 14/707,123 for APPLICATION    INDEPENDENT DEX/UCS INTERFACE filed May 8, 2015 (Pape);-   U.S. patent application Ser. No. 14/707,492 for METHOD AND APPARATUS    FOR READING OPTICAL INDICIA USING A PLURALITY OF DATA SOURCES filed    May 8, 2015 (Smith et al.);-   U.S. patent application Ser. No. 14/710,666 for PRE-PAID USAGE    SYSTEM FOR ENCODED INFORMATION READING TERMINALS filed May 13, 2015    (Smith);-   U.S. patent application Ser. No. 29/526,918 for CHARGING BASE filed    May 14, 2015 (Fitch et al.);-   U.S. patent application Ser. No. 14/715,672 for AUGUMENTED REALITY    ENABLED HAZARD DISPLAY filed May 19, 2015 (Venkatesha et al.);-   U.S. patent application Ser. No. 14/715,916 for EVALUATING IMAGE    VALUES filed May 19, 2015 (Ackley);-   U.S. patent application Ser. No. 14/722,608 for INTERACTIVE USER    INTERFACE FOR CAPTURING A DOCUMENT IN AN IMAGE SIGNAL filed May 27,    2015 (Showering et al.);-   U.S. patent application Ser. No. 29/528,165 for IN-COUNTER BARCODE    SCANNER filed May 27, 2015 (Oberpriller et al.);-   U.S. patent application Ser. No. 14/724,134 for ELECTRONIC DEVICE    WITH WIRELESS PATH SELECTION CAPABILITY filed May 28, 2015 (Wang et    al.);-   U.S. patent application Ser. No. 14/724,849 for METHOD OF    PROGRAMMING THE DEFAULT CABLE INTERFACE SOFTWARE IN AN INDICIA    READING DEVICE filed May 29, 2015 (Barten);-   U.S. patent application Ser. No. 14/724,908 for IMAGING APPARATUS    HAVING IMAGING ASSEMBLY filed May 29, 2015 (Barber et al.);-   U.S. patent application Ser. No. 14/725,352 for APPARATUS AND    METHODS FOR MONITORING ONE OR MORE PORTABLE DATA TERMINALS    (Caballero et al.);-   U.S. patent application Ser. No. 29/528,590 for ELECTRONIC DEVICE    filed May 29, 2015 (Fitch et al.);-   U.S. patent application Ser. No. 29/528,890 for MOBILE COMPUTER    HOUSING filed Jun. 2, 2015 (Fitch et al.);-   U.S. patent application Ser. No. 14/728,397 for DEVICE MANAGEMENT    USING VIRTUAL INTERFACES CROSS-REFERENCE TO RELATED APPLICATIONS    filed Jun. 2, 2015 (Caballero);-   U.S. patent application Ser. No. 14/732,870 for DATA COLLECTION    MODULE AND SYSTEM filed Jun. 8, 2015 (Powilleit);-   U.S. patent application Ser. No. 29/529,441 for INDICIA READING    DEVICE filed Jun. 8, 2015 (Zhou et al.);-   U.S. patent application Ser. No. 14/735,717 for INDICIA-READING    SYSTEMS HAVING AN INTERFACE WITH A USER'S NERVOUS SYSTEM filed Jun.    10, 2015 (Todeschini);-   U.S. patent application Ser. No. 14/738,038 for METHOD OF AND SYSTEM    FOR DETECTING OBJECT WEIGHING INTERFERENCES filed Jun. 12, 2015    (Amundsen et al.);-   U.S. patent application Ser. No. 14/740,320 for TACTILE SWITCH FOR A    MOBILE ELECTRONIC DEVICE filed Jun. 16, 2015 (Bandringa);-   U.S. patent application Ser. No. 14/740,373 for CALIBRATING A VOLUME    DIMENSIONER filed Jun. 16, 2015 (Ackley et al.);-   U.S. patent application Ser. No. 14/742,818 for INDICIA READING    SYSTEM EMPLOYING DIGITAL GAIN CONTROL filed Jun. 18, 2015 (Xian et    al.);-   U.S. patent application Ser. No. 14/743,257 for WIRELESS MESH POINT    PORTABLE DATA TERMINAL filed Jun. 18, 2015 (Wang et al.);-   U.S. patent application Ser. No. 29/530,600 for CYCLONE filed Jun.    18, 2015 (Vargo et al);-   U.S. patent application Ser. No. 14/744,633 for IMAGING APPARATUS    COMPRISING IMAGE SENSOR ARRAY HAVING SHARED GLOBAL SHUTTER CIRCUITRY    filed Jun. 19, 2015 (Wang);-   U.S. patent application Ser. No. 14/744,836 for CLOUD-BASED SYSTEM    FOR READING OF DECODABLE INDICIA filed Jun. 19, 2015 (Todeschini et    al.);-   U.S. patent application Ser. No. 14/745,006 for SELECTIVE OUTPUT OF    DECODED MESSAGE DATA filed Jun. 19, 2015 (Todeschini et al.);-   U.S. patent application Ser. No. 14/747,197 for OPTICAL PATTERN    PROJECTOR filed Jun. 23, 2015 (Thuries et al.);-   U.S. patent application Ser. No. 14/747,490 for DUAL-PROJECTOR    THREE-DIMENSIONAL SCANNER filed Jun. 23, 2015 (Jovanovski et al.);    and-   U.S. patent application Ser. No. 14/748,446 for CORDLESS INDICIA    READER WITH A MULTIFUNCTION COIL FOR WIRELESS CHARGING AND EAS    DEACTIVATION, filed Jun. 24, 2015 (Xie et al.).

What is claimed is:
 1. A method of managing NAND flash memory in anelectronic device, comprising: collecting files that are marked fordeletion or truncation; monitoring an activity level of the electronicdevice; monitoring a total size of the list of files that are marked fordeletion or truncation; determining if the electronic device is idle;and trimming the flash memory of the electronic device if predeterminedcriteria are met; whereby system performance of the electronic device isminimally impacted.
 2. The method of claim 1, comprising loading a filesystem filter driver at boot time of the electronic device.
 3. Themethod of claim 1, comprising setting a correct filter mode of the filesystem driver.
 4. The method of claim 1, comprising assigning a threadpriority to the file system filter driver
 5. The method of claim 1,comprising creating hooks to a file system of the electronic device fromthe file system device driver.
 6. The method of claim 1, comprisingextending file system I/O functions to the file system device driver. 7.The method of claim 1, comprising spawning a process to monitor idletime of the electronic device.
 8. The method of claim 1, comprisingcreating a system folder to contain files marked for deletion ortruncation.
 9. The method of claim 8, comprising spawning a process tomonitor the system folder.
 10. The method of claim 8, comprising movingfiles marked for deletion or truncation to a system folder.
 11. Themethod of claim 9, wherein trimming the flash memory of the electronicdevice occurs after the system folder exceeds a predetermined size. 12.The method of claim 1, wherein trimming the flash memory of theelectronic device occurs at the next reboot of the electronic device.13. The method of claim 1, wherein trimming the flash memory of theelectronic device occurs when the electronic device is determined to beidle.
 14. A method of managing NAND flash memory in an electronicdevice, comprising: providing an electronic device comprising: a NANDflash memory with a file system, and an operating system having filesystem I/O functions; providing a file system filter driver on theelectronic device, the file system filter driver operative to: executefile system I/O functions of the operating system, monitor an activitylevel of the electronic device, create a system folder to contain filesthat are marked for deletion or truncation, move files that are markedfor deletion or truncation to the system folder, determine if theelectronic device is idle, monitor the size of the system folder, andtrim the flash memory of the electronic device if a predeterminedcriteria are met; whereby system performance of the electronic device isminimally impacted by TRIM operations of the flash memory.
 15. Themethod of claim 14, comprising configuring the electronic device to loadthe file system filter driver at boot time of the electronic device. 16.The method of claim 14, wherein the file system filter driver isoperative to spawn a process to monitor idle time of the electronicdevice.
 17. The method of claim 14, wherein the file system filterdriver is operative to spawn a process to monitor the system folder. 18.The method of claim 17, wherein the file system filter driver isoperative to trim the flash memory of the electronic device after thesystem folder exceeds a predetermined size.
 19. The method of claim 1,wherein the file system filter driver is operative to trim the flashmemory of the electronic device at the next reboot of the electronicdevice.
 20. The method of claim 1, wherein the file system filter driveris operative to trim the flash memory of the electronic device when theelectronic device is determined to be idle.